package utils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class ExcelTool {
    /**
     * 提供方法,读取某个文件的某数据表的某行某列中的内容
     * 提供方法,读取某个文件的某数据表的某行某列中的内容
     * @return
     */
    public static String getCellContent(File file, int sheetNumber, int rowNumber, int columnNumber){

        File excel = file; // 将传入的文件对象赋值给局部变量excel

        if(excel.exists()) try { // 检查文件是否存在，如果存在则执行try块中的代码
            InputStream inputStream = new FileInputStream(excel); // 创建文件输入流
            Workbook workbook = null;// 实例化工作簿对象，初始为null
//            文件类型: 支持的文件类型为.xls和.xlsx，
//            其他类型文件会导致工作簿创建失败。
            if (excel.getName().endsWith(".xls")) { // 如果文件名以".xls"结尾
                workbook = new HSSFWorkbook(inputStream); // 创建HSSFWorkbook对象
            } else if (excel.getName().endsWith(".xlsx")) { // 如果文件名以".xlsx"结尾
                workbook = new XSSFWorkbook(inputStream); // 创建XSSFWorkbook对象
            }
//            for (int i = 0; i < ; i++) {
//                for (int j = 0; j < ; j++) {
//
//                }
//            }
            if (workbook != null) { // 如果工作簿对象不为null
                //Sheet sheet = workbook.getSheet("Sheet1");
                Sheet sheet = workbook.getSheetAt(sheetNumber); // 根据sheetNumber获取工作表

                if (sheet == null) { // 如果工作表为null，不执行任何操作

                } else {
                    Row row = sheet.getRow(rowNumber); //读取工作表的某行
                    if (row == null) {
                    } else {
                        Cell cell = row.getCell(columnNumber);

                        if (cell != null) {
                            //格式化所有内容，不管内容是int型还是String类型，都可以返回
                            String cellContent = new DataFormatter().formatCellValue(cell);

                            return cellContent;
                        } else {

                        }
                    }
                }
            } else {

            }
        } catch (Exception ex) {

        }

        return null;
    }
}